/***************************************************************************************** 
*                                     TinyRtos51 
*                                The Real-Time Kernel 
*                              Copyright(c) 2024 fanxsp
*                         SPDX-License-Identifier: APACHE-2.0
*       This software is subject to an open source license and is distributed by fanxsp,
*       pursuant to the terms of the Apache License.
******************************************************************************************/
/***************************************************************************************** 
** 				TinyRtos51 port_xxx.h
** keilC 8051 port
** Author: fanxsp
** Revision: 1.00
** Date: 2023-08-24
** 移植头文件模板
******************************************************************************************/
// MCU头文件
//#include <reg51.h>
#include "sc92f.h"

/* 开/关 中断   */
#define OSEi() EA = 1 
#define OSDi() EA = 0

/* 自定义空闲操作 可用于使用MCU进入休眠模式、清除看门狗等 */
#define UserIdle()

/*****************************************************************************************
* 用中断模拟PendSV指令进行任务切换  
*****************************************************************************************/
/* 模拟PendSV中断号   */
/* 赛元SC92F INT1    */
#define OSPendSVIRQ  2   

/* 模拟PendSV中断初始化 优先级必须设为最低 */
#define OSPendSVInit()  EINT1 = 1

/**************************************************************************************** 
* 清除模拟PendSV中断标志 
* 硬件自动清除中断标志则 定义为空
* 注意：有可能硬件产生的中断标志会自动清除,而软件触发的中断标志
*       不会自动清除,需要实测验证
*****************************************************************************************/
#define OSPendSVClr() TCON &= ~(0x08)    

/* 触发PendSV 所有中断退出后进行任务切换 */
#define OSPendSVAct() TCON |= 0x08
